/*Potato Dodge Video Game
2017-04-23 To 2017-06-19
Lucca*/
// GloBaL vArIaBleS
// Potato
var potatoX = 200;
var potatoY = 200;
var potatoSpot = 5;
// Lava
var lavaX = [10, 20, 30, 40, 50, 60, 70];
var lavaY = [-30, -30, -30, -30, -30, -30, -30];
var lavaSize;
var speed = [2, 3, 4, 5, 6, 7 , 8];
// Hearts
var tX = 200;
var tY = 200;
var bool = -1;
// HitBoxes
var hitBoxX = 1;
var hitBoxY = 1;
// Heart colours
var redH;
var blackH;
// variable indecating distance
var num = 0;
function setup() {
createCanvas(400, 400);
lavaSize = 60;
bool = -1;
// If my variable bool is zero or more call the lavaAtTop function
if (bool >= 0) {
lavaAtTop();
}
}
function draw() {
// Background
background(145, 156, 163);
if (bool == -1) {
startScreen();
}
// Distance
if (bool >= 0) {
fill(0, 0, 0);
strokeWeight(0.5);
text(num, 15, 20);
num=num+1;
}
// Rectangle
if (bool >= 0) {
stroke(0, 0, 0);
strokeWeight(0.5);
fill(173, 135, 135);
rect(290, 8, 101, 68);
}
// Health
if (bool >= 0) {
fill(0, 0, 0);
textSize(21);
text("Health", 310, 34);
strokeWeight(1);
line(308, 40, 374, 40);
}
// moving the lava downwards and bringing the lava back to the top when it falls off the bottom
if (bool >= 0) {
for (var Q=0; Q<7; Q++) {
lavaY[Q]=lavaY[Q]+speed[Q];
if (lavaY[Q]>400) {
lavaY[Q]=-30;
lavaX[Q]=random(5, 395);
speed[Q]=random(4, 5);
}
}
}
// CALLS
redH = color(255, 0, 0);
blackH = color(0, 0, 0);
tY = 200;
tX = 200;
heart1();
heart2();
heart3();
potato();
lava1();
lava2();
lava3();
lava4();
lava5();
lava6();
lava7();
// ball hitboxes/increasing bools value
if (bool >= 0) {
for (var Q=0; Q<7 && Q>=0; Q++) {
if ((mouseX >= (lavaX[Q] - lavaSize/2))
&& (mouseX <= (lavaX[Q] + lavaSize/2))
&& (mouseY >= (lavaY[Q] - lavaSize/2))
&& (mouseY <= (lavaY[Q] + lavaSize/2))) {
bool = bool+1;
lavaAtTop();
}
}
}
if (bool >= 3) {
endScreen();
}
} // End of Draw Function!!!
function lavaAtTop() {
for (var Q=0; Q<7; Q++) {
lavaX[Q] = random(5, 395);
lavaY[Q]=-30;
}
}
// Heart Functions
function heart1() {
if (bool >= 0) {
if (bool == 0) {
fill(redH);
}
if (bool == 1) {
fill(blackH);
}
if (bool == 2) {
fill(blackH);
}
if (bool == 3) {
fill(blackH);
}
noStroke();
triangle(tX+108, tY-156, tX+101, tY-144, tX+114, tY-144);
triangle(tX+120, tY-156, tX+114, tY-144, tX+127, tY-144);
triangle(tX+113, tY-126, tX+101, tY-144, tX+127, tY-144);
}
}
function heart2() {
if (bool >= 0) {
if (bool == 0) {
fill(redH);
}
if (bool == 1) {
fill(redH);
}
if (bool == 2) {
fill(blackH);
}
if (bool == 3) {
fill(blackH);
}
noStroke();
tX=tX+28;
triangle(tX+108, tY-156, tX+101, tY-144, tX+114, tY-144);
triangle(tX+120, tY-156, tX+114, tY-144, tX+127, tY-144);
triangle(tX+113, tY-126, tX+101, tY-144, tX+127, tY-144);
}
}
function heart3() {
if (bool >= 0) {
if (bool == 0) {
fill(redH);
}
if (bool == 1) {
fill(redH);
}
if (bool == 2) {
fill(redH);
}
if (bool == 3) {
fill(blackH);
}
noStroke();
tX=tX+28;
triangle(tX+108, tY-156, tX+101, tY-144, tX+114, tY-144);
triangle(tX+120, tY-156, tX+114, tY-144, tX+127, tY-144);
triangle(tX+113, tY-126, tX+101, tY-144, tX+127, tY-144);
}
}
// Lava Functions
function lava1() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[0], lavaY[0], lavaSize, lavaSize);
}
}
function lava2() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[1], lavaY[1], lavaSize, lavaSize);
}
}
function lava3() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[2], lavaY[2], lavaSize, lavaSize);
}
}
function lava4() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[3], lavaY[3], lavaSize, lavaSize);
}
}
function lava5() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[4], lavaY[4], lavaSize, lavaSize);
}
}
function lava6() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[5], lavaY[5], lavaSize, lavaSize);
}
}
function lava7() {
if (bool >= 0) {
fill(255, 0, 0);
ellipse(lavaX[6], lavaY[6], lavaSize, lavaSize);
}
}
function potato() {
if (bool >= 0) {
// No Cheating!!!
if (mouseX >= 390) {
mouseX=385;
}
if (mouseY <= 10) {
mouseY=15;
}
// Stuff
stroke(0, 0, 0);
strokeWeight(0.5);
// Potato
fill(230, 197, 78);
ellipse(mouseX, mouseY, 43, 32);
// Spots
fill(168, 161, 65);
ellipse(mouseX-10, mouseY-8, potatoSpot, potatoSpot);
ellipse(mouseX+15, mouseY-4, potatoSpot, potatoSpot);
ellipse(mouseX-4, mouseY+7, potatoSpot, potatoSpot);
}
}
function startScreen() {
fill(153, 153, 0);
rect(-1, -1, 401, 401);
fill(153, 0, 153);
rect(140, 320, 120, 55);
textSize(30)
fill(0, 0, 0);
text("POTATO DODGE!!!", 70, 45);
textSize(25)
fill(0, 0, 255);
text("Instructions:", 120, 120);
fill(0, 0, 255);
textSize(18);
text("Mr. Potato has a fear of being cooked alive. Help", 7, 150);
text("him avoid his fear by keeping him away from the", 7, 170);
text("dripping lava! You control Mr. Potato using the", 7, 190);
text("mouse. Good Luck!", 125, 210);
fill(0, 0, 0);
textSize(32);
text("Play?", 164, 360);
if (mouseIsPressed && (mouseX >= 140) && (mouseX <= 260) && (mouseY >= 320) && (mouseY <=385)) {
bool=0;
}
}
function endScreen() {
fill(0, 0, 0);
rect(0, 0, 400, 400);
fill(240, 10, 10);
textSize(45);
text("Mr.Potato Been", 50, 100);
textSize(42);
text("Cooked!", 120, 150);
textSize(14);
text("Click Refresh To play again", 120, 380);
if (bool >= 3) {
fill(255, 0, 0);
textSize(28);
text("Mr. Potato Ran " + num + "km!", 75, 240);
num=num-1;
if (num>=0 && num <=100) {
textSize(16);
text("(Dude, You Suck)", 130, 280);
}
if (num>=101 && num<=500) {
textSize(16);
text("(You Did Okayish)", 145, 280);
}
if (num>=501 && num<=1000) {
textSize(16);
text("(Ehh, Not Bad)", 140, 280);
}
if (num>=1001 && num<=1500) {
textSize(16);
text("(Y'all Been Shreked)", 145, 280);
}
if (num>=1501 && num<=2000) {
textSize(16);
text("(Cool Beans!)", 145, 280);
}
if (num>=2001 && num<=2500) {
textSize(16);
text("(WOW!)", 175, 280);
}
if (num>=2501 && num<=3000) {
textSize(16);
text("(Really Good!)", 160, 280);
}
if (num>=3001 && num<=4000) {
textSize(16);
text("(Swaggy!)", 170, 280);
}
if (num>=4001 && num<=5000) {
textSize(16);
text("(Incredible!)", 160, 280);
}
if (num>=5001 && num<=6000) {
textSize(16);
text("(Sick!)", 175, 280);
}
if (num>=6001 && num<=7000) {
textSize(16);
text("(Y'all R Gud)", 150, 280);
}
if (num>=7001 && num<=8000) {
textSize(16);
text("(You Dun Did Gud)", 145, 280);
}
if (num>=8001 && num<=8999) {
textSize(16);
text("(Nice!)", 175, 280);
}
if (num>9000) {
textSize(16);
text("(OVER 9000!!!)", 140, 280);
}
}
}
// END!